Generally described, computing programs executed by a computing device may require some amount of temporary storage space for holding data or other information during execution. As such, computing devices may provide dynamically allocatable memory space for use by these programs during execution. This memory space may correspond to, for example, random access memory (RAM) or other memory configured to provide dynamically allocatable space (e.g., paging memory or swap memory).
During execution, computing programs may request and be allocated portions of memory space for their use (e.g., to store program data). Generally, once the stored data is no longer needed, programs may release the memory, such that it may be made available for other uses. However, in some situations, memory allocated to a computer program may fail to be deallocated or properly released, even when the information contained within memory is no longer useful or accessible. These situations may, for example, be a result of an error within the computer code corresponding to the program. As a result, less memory may then be available to the computing device or programs executing on the computing device. This lack of memory may result in adverse effects, such as decreased performance of the computing system and program or system crashes.
Further, computing systems may utilize a communication network, or a series of communication networks, to exchange data. In some instances, computing programs, such as those described above, or information may be transferred over such communication networks.